<?php

namespace module\manage\validate;

use app\Validate;

class Activity extends Validate
{
    /**
     * 所有验证场景需要的字段.
     *
     * @var array<array>
     */
    protected $scene = [
        'save' => ['title', 'cover', 'mobile', 'dist_id', 'fee', 'duration', 'age']
    ];
    /**
     * Get the validation rules that apply to the request.
     *
     * @var array<string>
     */
    protected $rule = [
        'id' => 'require|integer|max:10',
        'title' => 'requireWithout:id|unique:activity|max:60',  // 标题
        'cover' => 'requireWithout:id|max:80',  // 封面
        'mobile' => 'requireWithout:id|length:11',  // 联系方式
        'age' => 'requireWithout:id|integer|>:0',  // 年龄
        'duration' => 'requireWithout:id|max:2000',  // 时长
        'dist_id' => 'requireWithout:id|integer|>:0',  // 地区
        'fee' => 'requireWithout:id|integer|>:0',  // 人均        
        'status' => 'in:1,2',  // 状态
        'album' => 'array|min:1|checkAlbum',
    ];
    /**
     * 验证字段描述
     * 
     * @var array<string>
     */
    protected $field = [
        'title' => '名称',  // 标题
        'age' => '年龄',  // 年龄
        'mobile' => '联系方式',  // 联系方式
        'duration' => '时长',  // 时长
        'dist_id' => '地区',  // 地区
        'fee' => '人均',  // 人均
        'cover' => '封面',  // 封面
        'status' => '状态',  // 状态
        'album' => '相册',  // 相册
    ];
    // 自定义验证规则
    protected function checkAlbum($value, $rule, $data=[])
    {
        $validate = new ActivityAlbum;
        foreach($value as $row){
            if(!$validate->check($row)){
                return $validate->getError();
            }
        }
        return true;
    }
}
